<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 利用递归函数求1~n的阶乘 1 * 2 * 3 * 4 * ..n
        function fn1(n) {
            if (n == 1) return n = 1;
            return n * fn1(n - 1);
        }
        console.log(fn1(4));
        // 利用递归函数求斐波那契数列(兔子序列)  1、1、2、3、5、8、13、21...
        // 用户输入一个数字 n 就可以求出 这个数字对应的兔子序列值
        // 我们只需要知道用户输入的n 的前面两项(n-1 n-2)就可以计算出n 对应的序列值
        function fn(n) {
            if (n === 1 || n === 2) return 1;
            return fn(n - 1) + fn(n - 2);
        }
        console.log(fn(8));
        //用递归遍历数据
        var data = [{
            id: 1,
            name: '家电',
            goods: [{
                id: 11,
                gname: '冰箱',
                goods: [{
                    id: 111,
                    gname: '海尔'
                }, {
                    id: 112,
                    gname: '美的'
                }, ]
            }, {
                id: 12,
                gname: '洗衣机'
            }]
        }, {
            id: 2,
            name: '服饰'
        }];

        function getId(json, id) {
            o = {};
            json.forEach(function(value) {
                if (value.id == id) {
                    o = value
                    return o
                } else if (value.goods && value.goods.length > 0) {
                    o = getId(value.goods, id)
                }
            })
            return o
        }
        console.log(getId(data, 11))
    </script>
</body>

</html>